package com.bjsxt.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.security.Principal;

/**
 * description:
 * 用户信息控制层
 * TODO: 这里是 Redis 存储 Token 信息的方法需要验证的接口，从理论上来说这个类已经不需要了，但是没有进行删除，还有资源服务器配置也没有进行删除
 *
 * @author ALIENWARE <br />
 * @date 2021/6/22
 */
@RestController
public class UserInfoController {

    /**
     * 获取当前登录用户的对象
     * 为什么 OAuth2 能自动的注入进来 : 使用 ThreadLocal 来实现的
     * Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
     * authentication === principal
     *
     * @param principal 此处的 principal 由 OAuth2.0 框架自动注入
     * @return 用户数据信息
     */
    @GetMapping("/user/info")
    public Principal userInfo(Principal principal) {
        return principal;
    }
}
